perm filename DRIVE.FAI[SYS,HE]6 blob
sn#074156 filedate 1973-11-29 generic text, type T, neo UTF8
COMMENT ⊗ VALID 00007 PAGES
RECORD PAGE DESCRIPTION
00001 00001
00002 00002 TITLE DRIVE
00004 00003 DOIT: MOVE 1,-1(17)
00005 00004 PACK: (INTEGER PTR,TIMEREFERENCE REAL SOLN)
00007 00005 ACT: HRLI MASTER
00008 00006 THIS IS THE 32 WORD MAIL MESSAGE
00009 00007 ISSERV: 0
00011 ENDMK
⊗;
TITLE DRIVE
INTERNAL DOIT,ARMPOS,ARM.JOINT,PACK,PSTRING
INTERNAL HANDFN,ARMFN,ARMPROCEED
EXTERNAL ARM.VECTOR,ARM.MOTION,ARM.STATUS,ARM.SEG
EXTERNAL ARM.WAIT,FELT,STOP.ON,WAIT.STRING
EXTERNAL JOBAPR,UNDERF
EXTERNAL ARM.MESSAGE,JOBSA
P←17
MASTER←←16661
RELOC←←40
TOUCH←←10
HOLD←←20
ARM.JOINT:MOVEI
SKIPA
ARMPOS: MOVEI 1
ONCE: HRRZ 1,JOBSA
HRRM 1,RSTSR
MOVE 1,ARM.VECTOR
MOVEM 1,THETA
MOVE 1,WAIT.STRING
MOVEM 1,ETOR
MOVE 1,FELT
MOVEM 1,NERVES
CALLI 1,30
HRRM 1,SEGJOB
CALLI 1,400021
HRLM 1,SEGJOB
MOVEI 1,ARM.STATUS
MOVEM 1,STATUS
MOVEI 1,ARM.SEG
MOVEM 1,SEGMENT
MOVEI 1,ARM.MOTION
HRRM 1,NAME
MOVEI 1,ARM.WAIT
HRLM 1,NAME
HRRZ 1,SEGJOB
CALLI 1,24
MOVE 3,[POINT 6,0,35]
MOVE 4,[POINT 7,MYPPN-1,35]
MOVEI 7,1
I5: MOVEI 5,2
C7: ILDB 6,3
ADDI 6,40
CAIE 6,40
IDPB 6,4
SOJGE 5,C7
SOJGE 7,[MOVEI 6,"/"
IDPB 6,4
JRST I5]
MOVEI 6,15
IDPB 6,4
MOVEI 6,12
IDPB 6,4
MOVE 1,[JRST ACTIT]
MOVEM 1,ONCE
ACTIT: MOVEI 1,RSTS
HRRM 1,JOBSA
JRST ACT
REQU: 0
EXE
MYPPN: 0
0
DOIT: MOVE 1,-1(17)
MOVEM 1,FILE
MOVEM 1,ARM.WAIT
MOVE 1,-2(17)
HRRZM 1,BAND
MOVEI 2
MOVE 1,-3(P)
JUMPN 1,.+2
CALLI 1,400071
MOVEM 1,PPPN
SEN1: PUSHJ P,ACT
RETM: SUB 17,[XWD 4,4]
JRST @4(17)
ARMFN: MOVEI 3+HOLD+RELOC
HRL 1,ARM.ME
HRRI 1,ARGS
BLT 1,ARGS+24
MOVE 1,-1(17)
DPB 1,[POINT 9,0,26]
PUSHJ P,ACT
SUB P,[XWD 2,2]
JRST @2(P)
HANDFN: MOVEI 3+HOLD
MOVE 1,ARM.ME
MOVE 1,(1)
MOVEM 1,ARGS
JRST ACT
ARMPRO: MOVE 1,-1(P)
MOVEM 1,ARGS
MOVEI 3
PUSHJ P,ACT
SUB P,[XWD 2,2]
JRST @2(P)
PACK: ;(INTEGER PTR,TIME;REFERENCE REAL SOLN);
MOVE 10,-3(P)
MOVE 1,-2(P)
MOVEM 1,(10) ;TIME
HRLZ 5,-1(P)
BLT 5,4 ;PICK UP A0-A4
MOVM 6,4 ;WHERE THE LARGEST WILL END UP
MOVEI 5,3
L1: MOVM 7,(5)
CAMGE 6,7
MOVE 6,7
SOJGE 5,L1
TDZ 6,[XWD 777,777777] ;THE LARGEST IS NOW IN 6
ADD 6,[XWD 12000,0] ;THE EXPONENT TO PUT FRACTION AND SIGN INTO RT. HALF
HLLM 6,-1(10)
UFA 6,4
HRLM 7,-3(10)
UFA 6,3
HRRM 7,-3(10)
UFA 6,2
HRLM 7,-2(10)
UFA 6,1
HRRM 7,-2(10)
UFA 6,0
HRRM 7,-1(10)
SUB P,[XWD 4,4]
JRST @4(P)
PSTRING: ;(PTR,S)
MOVE 1,[POINT 7,0,35]
HRR 1,-1(P) ;POINTS TO LOC IN COEFF
POP 16,3 ;COUNT
POP 16,2 ;STRING POINTER
HRLI 2,0 ;CLEAR LH OF COUNT
JUMPE 2,[
SETZ 1,
JRST PLB]
PL: ILDB 4,3
IDPB 4,1
SOJG 2,PL
MOVEI 4,0
IDPB 4,1
HRLI 1,0 ;LAST WORD
HRRZ 2,-1(P) ;FIRST WORD
SUBI 1,(2)
PLB: HRRZ 2,-1(P)
MOVEM 1,(2) ;WORD COUNT
SUB P,[XWD 2,2]
JRST @2(P)
ACT: HRLI MASTER
SETZM ARM.STATUS
SKIPE STOP.ON
TRO TOUCH
MOVEM EXE
MOVE 1,ARM.WAIT
MOVEM 1,ARM.MOTION
SETZM ARM.WAIT
CALL 1,[SIXBIT/INTENS/]
MOVEM 1,ENBSAV#
SETZ 1,
CALL 1,[SIXBIT/INTENB/] ;TURN OFF INTERRUPTS
MOVE 1,JOBAPR
MOVEM 1,APRSAV#
MOVEI 1,[CALL[SIXBIT/DISMIS/]]
MOVEM 1,JOBAPR
JSR ISSERV
SEND REQU
JRST[ MOVEI 1,2
CALLI 1,31
JRST .-1]
HRLZI 1,40
CALL 1,[SIXBIT/IENBW/]
MOVE 1,APRSAV
MOVEM 1,JOBAPR
MOVE 1,ENBSAV
CALL 1,[SIXBIT/INTENB/]
SKIPE @WAIT.STRING
OUTSTR @WAIT.STRING
POPJ P,
; THIS IS THE 32 WORD MAIL MESSAGE
EXE: XWD MASTER,0 ;18-27 NARGS, 30 RELOC, 31 HOLD, 32 SOTCH, 33-35 EXE
;0 READ IN OCTAL
;1 READ IN DECIMAL
;2 EXECUTE FILE
;3 EXECUTE FUNCTION
FILE: 0
PPPN: 0
BAND: 0
SEGJOB: 0
NAME: 0
STATUS: 0
SEGMENT:0
NERVES: 0
ETOR: 0
THETA: 0
ARGS: BLOCK =6
STRING: BLOCK =15
ISSERV: 0
SEE: SKIPN 1,REQU
JRST[ PTYGET 10
JRST[ OUTSTR[ASCIZ/NO PTYS AVAILABLE
/]
CALLI 12]
HRLI 10,0
MOVEM 10,PTYLIN#
GJ: MOVEI 11,[ASCIZ/L
/]
PTWRS7 10
WH: PTRD1W 10
CAIE 11,"#"
JRST[ CAIE 11,"?"
JRST WH
OUTSTR[ASCIZ\NO JOB FOR SERVO
TYPE C/R TO TRY AGAIN
\]
INCHWL
INCHWL
JRST GJ]
MOVEI 11,MYPPN
PTWRS7 10
WCC: PTRD1W 10
CAIE 11,"↑"
JRST WCC
SPJ: SETZ 1,
MOVEI 11,[ASCIZ/PJ
/]
PTWRS7 10
WJN: PTRD1W 10
CAIGE 11,72
CAIG 11,60
JRST ET
JRST[ SUBI 11,60
IMULI 1,12
ADD 1,11
JRST WJN]
ET: JUMPE 1,WJN
CAIE 11,12
JRST WJN
MOVEM 1,REQU
MOVEI 11,[ASCIZ/RU YELO[SYS,HE]
/]
PTWRS7 10
WCC2: PTRD1W 10
CAIE 11,"!"
JRST WCC2
JRST @ISSERV]
GOTONE: JRST @ISSERV
RSTS: SKIPE PTYLIN
SETZM REQU
RSTSR: JRST .
END